/*
 * XML Type:  InvestmentStatementResponse
 * Namespace: http://ofx.net/types/2003/04
 * Java type: net.ofx.types.x2003.x04.InvestmentStatementResponse
 *
 * Automatically generated - do not modify.
 */
package net.ofx.types.x2003.x04.impl;
/**
 * An XML InvestmentStatementResponse(@http://ofx.net/types/2003/04).
 *
 * This is a complex type.
 */
public class InvestmentStatementResponseImpl extends org.apache.xmlbeans.impl.values.XmlComplexContentImpl implements net.ofx.types.x2003.x04.InvestmentStatementResponse
{
    
    public InvestmentStatementResponseImpl(org.apache.xmlbeans.SchemaType sType)
    {
        super(sType);
    }
    
    private static final javax.xml.namespace.QName DTASOF$0 = 
        new javax.xml.namespace.QName("", "DTASOF");
    private static final javax.xml.namespace.QName CURDEF$2 = 
        new javax.xml.namespace.QName("", "CURDEF");
    private static final javax.xml.namespace.QName INVACCTFROM$4 = 
        new javax.xml.namespace.QName("", "INVACCTFROM");
    private static final javax.xml.namespace.QName INVTRANLIST$6 = 
        new javax.xml.namespace.QName("", "INVTRANLIST");
    private static final javax.xml.namespace.QName INVPOSLIST$8 = 
        new javax.xml.namespace.QName("", "INVPOSLIST");
    private static final javax.xml.namespace.QName INVBAL$10 = 
        new javax.xml.namespace.QName("", "INVBAL");
    private static final javax.xml.namespace.QName INVOOLIST$12 = 
        new javax.xml.namespace.QName("", "INVOOLIST");
    private static final javax.xml.namespace.QName MKTGINFO$14 = 
        new javax.xml.namespace.QName("", "MKTGINFO");
    private static final javax.xml.namespace.QName INV401K$16 = 
        new javax.xml.namespace.QName("", "INV401K");
    private static final javax.xml.namespace.QName INV401KBAL$18 = 
        new javax.xml.namespace.QName("", "INV401KBAL");
    
    
    /**
     * Gets the "DTASOF" element
     */
    public java.lang.String getDTASOF()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(DTASOF$0, 0);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }
    
    /**
     * Gets (as xml) the "DTASOF" element
     */
    public net.ofx.types.x2003.x04.DateTimeType xgetDTASOF()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.DateTimeType target = null;
            target = (net.ofx.types.x2003.x04.DateTimeType)get_store().find_element_user(DTASOF$0, 0);
            return target;
        }
    }
    
    /**
     * Sets the "DTASOF" element
     */
    public void setDTASOF(java.lang.String dtasof)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(DTASOF$0, 0);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_element_user(DTASOF$0);
            }
            target.setStringValue(dtasof);
        }
    }
    
    /**
     * Sets (as xml) the "DTASOF" element
     */
    public void xsetDTASOF(net.ofx.types.x2003.x04.DateTimeType dtasof)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.DateTimeType target = null;
            target = (net.ofx.types.x2003.x04.DateTimeType)get_store().find_element_user(DTASOF$0, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.DateTimeType)get_store().add_element_user(DTASOF$0);
            }
            target.set(dtasof);
        }
    }
    
    /**
     * Gets the "CURDEF" element
     */
    public net.ofx.types.x2003.x04.CurrencyEnum.Enum getCURDEF()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(CURDEF$2, 0);
            if (target == null)
            {
                return null;
            }
            return (net.ofx.types.x2003.x04.CurrencyEnum.Enum)target.getEnumValue();
        }
    }
    
    /**
     * Gets (as xml) the "CURDEF" element
     */
    public net.ofx.types.x2003.x04.CurrencyEnum xgetCURDEF()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.CurrencyEnum target = null;
            target = (net.ofx.types.x2003.x04.CurrencyEnum)get_store().find_element_user(CURDEF$2, 0);
            return target;
        }
    }
    
    /**
     * Sets the "CURDEF" element
     */
    public void setCURDEF(net.ofx.types.x2003.x04.CurrencyEnum.Enum curdef)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(CURDEF$2, 0);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_element_user(CURDEF$2);
            }
            target.setEnumValue(curdef);
        }
    }
    
    /**
     * Sets (as xml) the "CURDEF" element
     */
    public void xsetCURDEF(net.ofx.types.x2003.x04.CurrencyEnum curdef)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.CurrencyEnum target = null;
            target = (net.ofx.types.x2003.x04.CurrencyEnum)get_store().find_element_user(CURDEF$2, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.CurrencyEnum)get_store().add_element_user(CURDEF$2);
            }
            target.set(curdef);
        }
    }
    
    /**
     * Gets the "INVACCTFROM" element
     */
    public net.ofx.types.x2003.x04.InvestmentAccount getINVACCTFROM()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.InvestmentAccount target = null;
            target = (net.ofx.types.x2003.x04.InvestmentAccount)get_store().find_element_user(INVACCTFROM$4, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }
    
    /**
     * Sets the "INVACCTFROM" element
     */
    public void setINVACCTFROM(net.ofx.types.x2003.x04.InvestmentAccount invacctfrom)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.InvestmentAccount target = null;
            target = (net.ofx.types.x2003.x04.InvestmentAccount)get_store().find_element_user(INVACCTFROM$4, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.InvestmentAccount)get_store().add_element_user(INVACCTFROM$4);
            }
            target.set(invacctfrom);
        }
    }
    
    /**
     * Appends and returns a new empty "INVACCTFROM" element
     */
    public net.ofx.types.x2003.x04.InvestmentAccount addNewINVACCTFROM()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.InvestmentAccount target = null;
            target = (net.ofx.types.x2003.x04.InvestmentAccount)get_store().add_element_user(INVACCTFROM$4);
            return target;
        }
    }
    
    /**
     * Gets the "INVTRANLIST" element
     */
    public net.ofx.types.x2003.x04.InvestmentTransactionList getINVTRANLIST()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.InvestmentTransactionList target = null;
            target = (net.ofx.types.x2003.x04.InvestmentTransactionList)get_store().find_element_user(INVTRANLIST$6, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }
    
    /**
     * True if has "INVTRANLIST" element
     */
    public boolean isSetINVTRANLIST()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(INVTRANLIST$6) != 0;
        }
    }
    
    /**
     * Sets the "INVTRANLIST" element
     */
    public void setINVTRANLIST(net.ofx.types.x2003.x04.InvestmentTransactionList invtranlist)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.InvestmentTransactionList target = null;
            target = (net.ofx.types.x2003.x04.InvestmentTransactionList)get_store().find_element_user(INVTRANLIST$6, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.InvestmentTransactionList)get_store().add_element_user(INVTRANLIST$6);
            }
            target.set(invtranlist);
        }
    }
    
    /**
     * Appends and returns a new empty "INVTRANLIST" element
     */
    public net.ofx.types.x2003.x04.InvestmentTransactionList addNewINVTRANLIST()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.InvestmentTransactionList target = null;
            target = (net.ofx.types.x2003.x04.InvestmentTransactionList)get_store().add_element_user(INVTRANLIST$6);
            return target;
        }
    }
    
    /**
     * Unsets the "INVTRANLIST" element
     */
    public void unsetINVTRANLIST()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(INVTRANLIST$6, 0);
        }
    }
    
    /**
     * Gets the "INVPOSLIST" element
     */
    public net.ofx.types.x2003.x04.InvestmentPositionList getINVPOSLIST()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.InvestmentPositionList target = null;
            target = (net.ofx.types.x2003.x04.InvestmentPositionList)get_store().find_element_user(INVPOSLIST$8, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }
    
    /**
     * True if has "INVPOSLIST" element
     */
    public boolean isSetINVPOSLIST()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(INVPOSLIST$8) != 0;
        }
    }
    
    /**
     * Sets the "INVPOSLIST" element
     */
    public void setINVPOSLIST(net.ofx.types.x2003.x04.InvestmentPositionList invposlist)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.InvestmentPositionList target = null;
            target = (net.ofx.types.x2003.x04.InvestmentPositionList)get_store().find_element_user(INVPOSLIST$8, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.InvestmentPositionList)get_store().add_element_user(INVPOSLIST$8);
            }
            target.set(invposlist);
        }
    }
    
    /**
     * Appends and returns a new empty "INVPOSLIST" element
     */
    public net.ofx.types.x2003.x04.InvestmentPositionList addNewINVPOSLIST()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.InvestmentPositionList target = null;
            target = (net.ofx.types.x2003.x04.InvestmentPositionList)get_store().add_element_user(INVPOSLIST$8);
            return target;
        }
    }
    
    /**
     * Unsets the "INVPOSLIST" element
     */
    public void unsetINVPOSLIST()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(INVPOSLIST$8, 0);
        }
    }
    
    /**
     * Gets the "INVBAL" element
     */
    public net.ofx.types.x2003.x04.InvestmentBalance getINVBAL()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.InvestmentBalance target = null;
            target = (net.ofx.types.x2003.x04.InvestmentBalance)get_store().find_element_user(INVBAL$10, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }
    
    /**
     * True if has "INVBAL" element
     */
    public boolean isSetINVBAL()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(INVBAL$10) != 0;
        }
    }
    
    /**
     * Sets the "INVBAL" element
     */
    public void setINVBAL(net.ofx.types.x2003.x04.InvestmentBalance invbal)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.InvestmentBalance target = null;
            target = (net.ofx.types.x2003.x04.InvestmentBalance)get_store().find_element_user(INVBAL$10, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.InvestmentBalance)get_store().add_element_user(INVBAL$10);
            }
            target.set(invbal);
        }
    }
    
    /**
     * Appends and returns a new empty "INVBAL" element
     */
    public net.ofx.types.x2003.x04.InvestmentBalance addNewINVBAL()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.InvestmentBalance target = null;
            target = (net.ofx.types.x2003.x04.InvestmentBalance)get_store().add_element_user(INVBAL$10);
            return target;
        }
    }
    
    /**
     * Unsets the "INVBAL" element
     */
    public void unsetINVBAL()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(INVBAL$10, 0);
        }
    }
    
    /**
     * Gets the "INVOOLIST" element
     */
    public net.ofx.types.x2003.x04.InvestmentOpenOrderList getINVOOLIST()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.InvestmentOpenOrderList target = null;
            target = (net.ofx.types.x2003.x04.InvestmentOpenOrderList)get_store().find_element_user(INVOOLIST$12, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }
    
    /**
     * True if has "INVOOLIST" element
     */
    public boolean isSetINVOOLIST()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(INVOOLIST$12) != 0;
        }
    }
    
    /**
     * Sets the "INVOOLIST" element
     */
    public void setINVOOLIST(net.ofx.types.x2003.x04.InvestmentOpenOrderList invoolist)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.InvestmentOpenOrderList target = null;
            target = (net.ofx.types.x2003.x04.InvestmentOpenOrderList)get_store().find_element_user(INVOOLIST$12, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.InvestmentOpenOrderList)get_store().add_element_user(INVOOLIST$12);
            }
            target.set(invoolist);
        }
    }
    
    /**
     * Appends and returns a new empty "INVOOLIST" element
     */
    public net.ofx.types.x2003.x04.InvestmentOpenOrderList addNewINVOOLIST()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.InvestmentOpenOrderList target = null;
            target = (net.ofx.types.x2003.x04.InvestmentOpenOrderList)get_store().add_element_user(INVOOLIST$12);
            return target;
        }
    }
    
    /**
     * Unsets the "INVOOLIST" element
     */
    public void unsetINVOOLIST()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(INVOOLIST$12, 0);
        }
    }
    
    /**
     * Gets the "MKTGINFO" element
     */
    public java.lang.String getMKTGINFO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(MKTGINFO$14, 0);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }
    
    /**
     * Gets (as xml) the "MKTGINFO" element
     */
    public net.ofx.types.x2003.x04.InfoType xgetMKTGINFO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.InfoType target = null;
            target = (net.ofx.types.x2003.x04.InfoType)get_store().find_element_user(MKTGINFO$14, 0);
            return target;
        }
    }
    
    /**
     * True if has "MKTGINFO" element
     */
    public boolean isSetMKTGINFO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(MKTGINFO$14) != 0;
        }
    }
    
    /**
     * Sets the "MKTGINFO" element
     */
    public void setMKTGINFO(java.lang.String mktginfo)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(MKTGINFO$14, 0);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_element_user(MKTGINFO$14);
            }
            target.setStringValue(mktginfo);
        }
    }
    
    /**
     * Sets (as xml) the "MKTGINFO" element
     */
    public void xsetMKTGINFO(net.ofx.types.x2003.x04.InfoType mktginfo)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.InfoType target = null;
            target = (net.ofx.types.x2003.x04.InfoType)get_store().find_element_user(MKTGINFO$14, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.InfoType)get_store().add_element_user(MKTGINFO$14);
            }
            target.set(mktginfo);
        }
    }
    
    /**
     * Unsets the "MKTGINFO" element
     */
    public void unsetMKTGINFO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(MKTGINFO$14, 0);
        }
    }
    
    /**
     * Gets the "INV401K" element
     */
    public net.ofx.types.x2003.x04.Investment401K getINV401K()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.Investment401K target = null;
            target = (net.ofx.types.x2003.x04.Investment401K)get_store().find_element_user(INV401K$16, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }
    
    /**
     * True if has "INV401K" element
     */
    public boolean isSetINV401K()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(INV401K$16) != 0;
        }
    }
    
    /**
     * Sets the "INV401K" element
     */
    public void setINV401K(net.ofx.types.x2003.x04.Investment401K inv401K)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.Investment401K target = null;
            target = (net.ofx.types.x2003.x04.Investment401K)get_store().find_element_user(INV401K$16, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.Investment401K)get_store().add_element_user(INV401K$16);
            }
            target.set(inv401K);
        }
    }
    
    /**
     * Appends and returns a new empty "INV401K" element
     */
    public net.ofx.types.x2003.x04.Investment401K addNewINV401K()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.Investment401K target = null;
            target = (net.ofx.types.x2003.x04.Investment401K)get_store().add_element_user(INV401K$16);
            return target;
        }
    }
    
    /**
     * Unsets the "INV401K" element
     */
    public void unsetINV401K()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(INV401K$16, 0);
        }
    }
    
    /**
     * Gets the "INV401KBAL" element
     */
    public net.ofx.types.x2003.x04.Investment401KBalance getINV401KBAL()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.Investment401KBalance target = null;
            target = (net.ofx.types.x2003.x04.Investment401KBalance)get_store().find_element_user(INV401KBAL$18, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }
    
    /**
     * True if has "INV401KBAL" element
     */
    public boolean isSetINV401KBAL()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(INV401KBAL$18) != 0;
        }
    }
    
    /**
     * Sets the "INV401KBAL" element
     */
    public void setINV401KBAL(net.ofx.types.x2003.x04.Investment401KBalance inv401KBAL)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.Investment401KBalance target = null;
            target = (net.ofx.types.x2003.x04.Investment401KBalance)get_store().find_element_user(INV401KBAL$18, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.Investment401KBalance)get_store().add_element_user(INV401KBAL$18);
            }
            target.set(inv401KBAL);
        }
    }
    
    /**
     * Appends and returns a new empty "INV401KBAL" element
     */
    public net.ofx.types.x2003.x04.Investment401KBalance addNewINV401KBAL()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.Investment401KBalance target = null;
            target = (net.ofx.types.x2003.x04.Investment401KBalance)get_store().add_element_user(INV401KBAL$18);
            return target;
        }
    }
    
    /**
     * Unsets the "INV401KBAL" element
     */
    public void unsetINV401KBAL()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(INV401KBAL$18, 0);
        }
    }
}
